Today's integrated circuits contain many circuit elements. Computer-aided design (CAD) and computer-aided engineering (CAE) tools are essential in producing these complicated integrated circuits. Circuit design can be represented by a schematic. Schematics consist of symbol instances connected by nets which demonstrate the functional design of the circuit. Symbol instances are pictorial icons that represent a complete functional block. Symbol instances can be primitive elements, such as transistors and resistors. Moreover, symbol instances can also be abstractions of combinations of primitive elements, such as NAND gates and NOR gates. Symbol instances can also be higher level groupings of these various elements. CAD software can be used to produce the complicated schematics of an integrated circuit. CAD software allows symbols to be saved in libraries for use by many circuit designers. Portions of the integrated circuit can be easily replicated, deleted, and changed with the CAD software.
However, the massive complexity of current circuits introduces problems in circuit design. Because a typical circuit can contain several million individual instances which are connected by several million nets, a change in design implementation may necessitate the same change to many corresponding blocks of the circuit.
In designing integrated circuit devices, a design engineer may include switches in a low level cell schematic to establish connections in portions of a circuit being designed. Such switches allow components, such as transistors, resistor, or capacitors, to be connected into a circuit of a cell, or not, depending upon the operation required for the circuit.
At the time of designing a low level schematic, the design engineer may not know whether the switches will be configured as open or closed switches. Moreover, with continued design to higher levels, it may be required that the state of a switch in one or more cells be changed to be opposite to that for which it had been established. However, many conventional design processes require that each switch condition be specified at the time that the switch is created. Consequently, a different schematic must be created for each basic function of a cell. This complicates the design procedure, particularly in the case where a cell is replicated during the design process and where a cell is expected to function differently for different placements.
One known design software that is used in computer-aided design includes schematic libraries providing a switch having a functionality that interconnects two nets of a circuit. The design software is commercially available under the tradename ANALOG ARTIST from Cadence Design Systems, Inc. San Jose, Calif. The switch function provided by commercially available design software, such as the Cadence design software, does not provide any mechanism for modifying switch behavior based on inherited parameters.
Another option for reconfiguring the behavior of a circuit is to maintain a database that contains several versions of a basic cell with the appropriate version of the cell being placed for each instance. However, when there is more than one version of a cell, maintenance overhead and the probability of design errors increase substantially.
The most common approach is to replace the switches with ports and hard wire the ports, such as by placing a wire between terminals to be shorted, to establish the desired switch conditions. However, this approach requires adding numerous terminals to the database solely for the purpose of providing flexibility in switch configuration. In addition, this approach also increases the probability of error because if any of the terminals are wired incorrectly, such incorrect wiring may not be readily apparent.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for a method and system for use in the design and testing of integrated circuit devices and which allows the connected behavior of a circuit design schematic to be changed at the time the netlist is being created.